import types from './actionTypes';

// 设置一个默认值，如果state没有值则使用这个默认值
const defaultState = {
  inputValue: '',
  list: ['学习英语', '学习React']
}
// 导出一个函数(第一个参数是之前的state，第二个值数是一个action对象，包括类型和传值)
export default (state = defaultState, action) => {

  const { type, value } = action;
  const newState = JSON.parse(JSON.stringify(state));

  switch(type) {
    case types.INIT_TODO_ITEM:
      newState.list = value;
      break;
    case types.CHANGE_INPUT_VALUE:
      newState.inputValue = value;
      break;
    case types.ADD_TODO_ITEM:
      newState.list.push(newState.inputValue);
      newState.inputValue = '';
      break;
    case types.DELETE_TODO_ITEM:
      newState.list.splice(value, 1);
      break;
    default:
      return state
  }
  return newState;
}